package com.myprojects.common.dto;

import java.util.HashMap;
import java.util.Map;

/**
 * 该类为最高级抽象的服务器数据返回结果
 */
public class Msg {
    /**
     * 状态码
     * 200为成功，400为失败，401为登录失败
     */
    private int code;

    /**
     * 服务器回传的提示信息
     */
    private String msg;

    /**
     * 系统要返回给浏览器的数据
     */
    private Map<String,Object> dataMap = new HashMap<String,Object>();

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Map<String, Object> getDataMap() {
        return dataMap;
    }

    /**
     * 该函数用于Msg对象添加数据
     * @return 会返回一个已添加数据的Msg的对象
     */
    public Msg addData(String dataName , Object dataObject){
        this.dataMap.put(dataName,dataObject);
        return this;
    }

    /**
     * 处理成功后调用的函数
     * @return 会构建并返回一个提示成功的Msg对象结果
     */
    public static Msg succeed(){
        Msg result = new Msg();
        result.setCode(200);
        result.setMsg("处理成功！");

        return result;
    }

    /**
     * 处理失败后调用的函数
     * @return 会构建并返回一个提示失败的Msg对象结果
     */
    public static Msg failed(){
        Msg result = new Msg();
        result.setCode(400);
        result.setMsg("处理失败！");

        return result;
    }

    @Override
    public String toString() {
        return "Msg{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", dataMap=" + dataMap +
                '}';
    }
}

